-- 元类
Shape = {area = 0}

-- 基础类方法 new
function Shape:new (o,side)   ---side是变长
 o = o or {}
 setmetatable(o, self)  ----重载
 self.__index = self
 side = side or 0
 self.area = side*side;    ---面积
 return o
end

-- 基础类方法 printArea
function Shape:printArea ()
 print("面积为 ",self.area)
end

-- 创建对象
myshape = Shape:new(nil,10)

myshape:printArea()






